#pragma once

struct vec2f final
{
	static const size_t arity = 2;

	bool operator==(const vec2f& rhs) = delete;

	float& operator[](size_t index) { return *(&x + index); }
	float operator[](size_t index) const { return *(&x + index); }

	float x;
	float y;
};

inline vec2f vec2fc(const float x, const float y)
{
	vec2f vec = { x, y };
	return vec;
}

inline vec2f zero_vec2f()
{
	return vec2fc(0, 0);
}